From: Caolán McNamara Date: Tue, 14 Jul 2026 18:12:01 +0000 (+0100) Subject: [PATCH] put slideshow media links under link control X-Git-Tag: archive/raspbian/4%25.2.3-2+rpi1+deb13u8^2~13 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=ec4fac46993f8abedffce9bb64c7229c9b8c9bef;p=libreoffice.git [PATCH] put slideshow media links under link control Change-Id: I22b8e5577e2a450d0d4043db891eec4617dcb2fe Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/7009 Tested-by: Jenkins CPCI Reviewed-by: Miklos Vajna (cherry picked from commit f0768394c14f928d47547408fc1195368be81f86) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208332 Reviewed-by: Xisco Fauli Tested-by: Jenkins Signed-off-by: Xisco Fauli Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208391 Tested-by: Ilmari Lauhakangas Reviewed-by: Ilmari Lauhakangas Reviewed-by: Hossein Gbp-Pq: Name CVE-2026-63269-3.diff --- diff --git a/slideshow/source/engine/shapes/viewmediashape.cxx b/slideshow/source/engine/shapes/viewmediashape.cxx index ec19f11b66f..1f45f25ae2b 100644 --- a/slideshow/source/engine/shapes/viewmediashape.cxx +++ b/slideshow/source/engine/shapes/viewmediashape.cxx @@ -39,6 +39,7 @@ #include #include #include +#include #include #include @@ -267,6 +268,21 @@ namespace slideshow::internal } + bool ViewMediaShape::implMediaLinkAllowed() const + { + SdrObject* pObj = SdrObject::getSdrObjectFromXShape(mxShape); + if (!pObj) + return false; + uno::Reference xModelProps( + pObj->getSdrModelFromSdrObject().getUnoModel(), uno::UNO_QUERY); + if (!xModelProps.is()) + return false; + bool bAllow = false; + xModelProps->getPropertyValue(u"AllowLinkUpdate"_ustr) >>= bAllow; + return bAllow; + } + + bool ViewMediaShape::implInitialize( const ::basegfx::B2DRectangle& rBounds ) { if( !mxPlayer.is() && mxShape.is() ) @@ -294,7 +310,8 @@ namespace slideshow::internal { implInitializeMediaPlayer( aURL, sMimeType ); } - else if (xPropSet->getPropertyValue(u"MediaURL"_ustr) >>= aURL) + else if ((xPropSet->getPropertyValue(u"MediaURL"_ustr) >>= aURL) + && implMediaLinkAllowed()) { if ( maFallbackDir.getLength() && aURL.startsWith("file:///") && diff --git a/slideshow/source/engine/shapes/viewmediashape.hxx b/slideshow/source/engine/shapes/viewmediashape.hxx index 34be8536b73..3631e35b1ec 100644 --- a/slideshow/source/engine/shapes/viewmediashape.hxx +++ b/slideshow/source/engine/shapes/viewmediashape.hxx @@ -144,6 +144,7 @@ namespace slideshow::internal private: bool implInitialize( const ::basegfx::B2DRectangle& rBounds ); + bool implMediaLinkAllowed() const; void implSetMediaProperties( const css::uno::Reference< css::beans::XPropertySet >& rxProps ); void implInitializeMediaPlayer( const OUString& rMediaURL, const OUString& rMimeType ); void implInitializePlayerWindow( const ::basegfx::B2DRectangle& rBounds,